package com.pf.selection.annotation;

import com.pf.selection.annotation.convert.Converter;
import com.pf.selection.annotation.convert.DefaultConverter;
import com.pf.selection.enums.SelectionEchoReturnType;

import java.lang.annotation.*;

/**
 * 下拉选择字段回显
 *
 * @author PanFei
 * @version 1.0.0
 * @createTime 2023/3/30 20:04
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface SelectionFieldEcho {

    /**
     * 下拉字段别名
     *
     * @return
     */
    String alias() default "";

    /**
     * 下拉字段返回类型
     * <p>
     * 因为实际需求中有些字段前端期望返回 key-value形式数据，有些字段期望返回value数据
     *
     * @return
     */
    SelectionEchoReturnType returnType() default SelectionEchoReturnType.CODE_LABEL;

    /**
     * 数据字典数据的转换key
     *
     * @return
     */
    String converterKey() default "";

    /**
     * 数据字典数据的转换类
     *
     * @return
     */
    Class<? extends Converter> converter() default DefaultConverter.class;
}
